/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.ufpa.sorteio.bean;

import br.com.ufpa.sorteio.dao.EquipeDAO;
import br.com.ufpa.sorteio.dao.ProfessorDAO;
import br.com.ufpa.sorteio.entidade.Equipe;
import br.com.ufpa.sorteio.entidade.Professor;
import java.io.IOException;
import java.io.Serializable;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;

/**
 *
 * @author Weslley
 */
@ManagedBean(name="loginMB")
@SessionScoped
public class LoginMB implements Serializable {
    
    private String username;
    private String passwd;
    
    private String nome;

    private Professor professor;
    private ProfessorDAO dao;
    
    private Equipe equipe;
    private EquipeDAO equipeDAO;

    public LoginMB() {

    }

    /**
     * Método responsável pela autenticação do Professor no sistema.
     *
     */
    public void loginProfessor() {
        dao = new ProfessorDAO();
        dao.startOperation();
        professor = dao.autenticaProfessor(username, passwd);
        dao.stopOperation(false);
        if (professor == null) {
            professor = new Professor();
            FacesContext.getCurrentInstance().addMessage(null, new FacesMessage("Login e/ou senha inválidos."));
        } else {
            try {
                FacesContext.getCurrentInstance().getExternalContext().redirect("index-professor.jsf");
            } catch (IOException ex) {
                Logger.getLogger(LoginMB.class.getName()).log(Level.SEVERE, null, ex);
            }
        }
    }
    
    public void loginEquipe() {
        equipeDAO = new EquipeDAO();
        equipeDAO.startOperation();
        equipe = equipeDAO.autenticaEquipe(nome);
        dao.stopOperation(false);
        if (equipe == null) {
            equipe = new Equipe();
            FacesContext.getCurrentInstance().addMessage(null, new FacesMessage("Nome inválido."));
        } else {
            try {
                FacesContext.getCurrentInstance().getExternalContext().redirect("index-equipe.jsf");
            } catch (IOException ex) {
                Logger.getLogger(LoginMB.class.getName()).log(Level.SEVERE, null, ex);
            }
        }
    }

    /**
     * Método que remove o professor que está logado.
     */
    public void logoutProfessor() {

    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPasswd() {
        return passwd;
    }

    public void setPasswd(String passwd) {
        this.passwd = passwd;
    }

    public Professor getProfessor() {
        return professor;
    }

    public void setProfessor(Professor professor) {
        this.professor = professor;
    }

    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    public Equipe getEquipe() {
        return equipe;
    }

    public void setEquipe(Equipe equipe) {
        this.equipe = equipe;
    }

}
